\(\sum{(Px(value==1)*px\_resolution ^2 )}\)
library(pixmap)
library(magrittr)
library(EBImage)
library(image.LineSegmentDetector)
library(image.ContourDetector)
library(image.CannyEdges)
setwd("~/Zellkraftwerk/packages/RJobTissueArea")
file <- file.path("inst/data","data_sum_M1730408_pos11.csv")
data.sum <- file%>%
data.table::fread()
m.data_sum <- data.sum%>%
as.matrix()
#cellres: pixel resolution in horizontal and vertical direction
image <-pixmapGrey(m.data_sum,cellres=c(1,1))
plot(image)
grid <- expand.grid(
sigma = seq(0.5,3,0.4),
threshold = seq(1,3,0.1)
)
grid$min <- NA
grid$max <- NA
img2 <- image@grey * 255
# Set up plots for 96 dpi images
#library(EBImage)
#dm <- dim(img2)/96
#dev.new(width = dm[1], height = dm[2])
# Low pass filter with gblur and make binary
par(mfrow=c(1,2))
for(i in 1:dim(grid)[1]){
writeLines(c(
paste0("- sigma: ",grid$sigma[i]),
paste0("- threshold: ", grid$threshold[i])
))
#Low-pass Gaussian filter
xb <- EBImage::gblur(img2, grid$sigma[i])
xb <- round(xb,digits = 1)
#plot(xb)
image2 <- pixmapGrey(xb,cellres=c(1,1)) #(xb-min(xb))/(max(xb)-min(xb))
plot(image2)
grid$min[i] <- min(xb)
grid$max[i] <- max(xb)
#threshold filtering
pos <- which(xb > grid$threshold[i])
xt <- xb
xt[which(xb > grid$threshold[i])] <- 1
xt[which(xb <= grid$threshold[i])] <- 0
#xt <- EBImage::thresh(xb, w=grid$w[i],
# h=grid$w[i],
# offset = grid$offset[i])
#plot(xt)
image3 <- image
image3@grey <- xt
plot(image3)
}
## - sigma: 0.5
## - threshold: 1
## - sigma: 0.9
## - threshold: 1
## - sigma: 1.3
## - threshold: 1
## - sigma: 1.7
## - threshold: 1
## - sigma: 2.1
## - threshold: 1
## - sigma: 2.5
## - threshold: 1
## - sigma: 2.9
## - threshold: 1
## - sigma: 0.5
## - threshold: 1.1
## - sigma: 0.9
## - threshold: 1.1
## - sigma: 1.3
## - threshold: 1.1
## - sigma: 1.7
## - threshold: 1.1
## - sigma: 2.1
## - threshold: 1.1
## - sigma: 2.5
## - threshold: 1.1
## - sigma: 2.9
## - threshold: 1.1
## - sigma: 0.5
## - threshold: 1.2
## - sigma: 0.9
## - threshold: 1.2
## - sigma: 1.3
## - threshold: 1.2
## - sigma: 1.7
## - threshold: 1.2
## - sigma: 2.1
## - threshold: 1.2
## - sigma: 2.5
## - threshold: 1.2
## - sigma: 2.9
## - threshold: 1.2
## - sigma: 0.5
## - threshold: 1.3
## - sigma: 0.9
## - threshold: 1.3
## - sigma: 1.3
## - threshold: 1.3
## - sigma: 1.7
## - threshold: 1.3
## - sigma: 2.1
## - threshold: 1.3
## - sigma: 2.5
## - threshold: 1.3
## - sigma: 2.9
## - threshold: 1.3
## - sigma: 0.5
## - threshold: 1.4
## - sigma: 0.9
## - threshold: 1.4
## - sigma: 1.3
## - threshold: 1.4
## - sigma: 1.7
## - threshold: 1.4
## - sigma: 2.1
## - threshold: 1.4
## - sigma: 2.5
## - threshold: 1.4
## - sigma: 2.9
## - threshold: 1.4
## - sigma: 0.5
## - threshold: 1.5
## - sigma: 0.9
## - threshold: 1.5
## - sigma: 1.3
## - threshold: 1.5
## - sigma: 1.7
## - threshold: 1.5
## - sigma: 2.1
## - threshold: 1.5
## - sigma: 2.5
## - threshold: 1.5
## - sigma: 2.9
## - threshold: 1.5
## - sigma: 0.5
## - threshold: 1.6
## - sigma: 0.9
## - threshold: 1.6
## - sigma: 1.3
## - threshold: 1.6
## - sigma: 1.7
## - threshold: 1.6
## - sigma: 2.1
## - threshold: 1.6
## - sigma: 2.5
## - threshold: 1.6
## - sigma: 2.9
## - threshold: 1.6
## - sigma: 0.5
## - threshold: 1.7
## - sigma: 0.9
## - threshold: 1.7
## - sigma: 1.3
## - threshold: 1.7
## - sigma: 1.7
## - threshold: 1.7
## - sigma: 2.1
## - threshold: 1.7
## - sigma: 2.5
## - threshold: 1.7
## - sigma: 2.9
## - threshold: 1.7
## - sigma: 0.5
## - threshold: 1.8
## - sigma: 0.9
## - threshold: 1.8
## - sigma: 1.3
## - threshold: 1.8
## - sigma: 1.7
## - threshold: 1.8
## - sigma: 2.1
## - threshold: 1.8
## - sigma: 2.5
## - threshold: 1.8
## - sigma: 2.9
## - threshold: 1.8
## - sigma: 0.5
## - threshold: 1.9
## - sigma: 0.9
## - threshold: 1.9
## - sigma: 1.3
## - threshold: 1.9
## - sigma: 1.7
## - threshold: 1.9
## - sigma: 2.1
## - threshold: 1.9
## - sigma: 2.5
## - threshold: 1.9
## - sigma: 2.9
## - threshold: 1.9
## - sigma: 0.5
## - threshold: 2
## - sigma: 0.9
## - threshold: 2
## - sigma: 1.3
## - threshold: 2
## - sigma: 1.7
## - threshold: 2
## - sigma: 2.1
## - threshold: 2
## - sigma: 2.5
## - threshold: 2
## - sigma: 2.9
## - threshold: 2
## - sigma: 0.5
## - threshold: 2.1
## - sigma: 0.9
## - threshold: 2.1
## - sigma: 1.3
## - threshold: 2.1
## - sigma: 1.7
## - threshold: 2.1
## - sigma: 2.1
## - threshold: 2.1
## - sigma: 2.5
## - threshold: 2.1
## - sigma: 2.9
## - threshold: 2.1
## - sigma: 0.5
## - threshold: 2.2
## - sigma: 0.9
## - threshold: 2.2
## - sigma: 1.3
## - threshold: 2.2
## - sigma: 1.7
## - threshold: 2.2
## - sigma: 2.1
## - threshold: 2.2
## - sigma: 2.5
## - threshold: 2.2
## - sigma: 2.9
## - threshold: 2.2
## - sigma: 0.5
## - threshold: 2.3
## - sigma: 0.9
## - threshold: 2.3
## - sigma: 1.3
## - threshold: 2.3
## - sigma: 1.7
## - threshold: 2.3
## - sigma: 2.1
## - threshold: 2.3
## - sigma: 2.5
## - threshold: 2.3
## - sigma: 2.9
## - threshold: 2.3
## - sigma: 0.5
## - threshold: 2.4
## - sigma: 0.9
## - threshold: 2.4
## - sigma: 1.3
## - threshold: 2.4
## - sigma: 1.7
## - threshold: 2.4
## - sigma: 2.1
## - threshold: 2.4
## - sigma: 2.5
## - threshold: 2.4
## - sigma: 2.9
## - threshold: 2.4
## - sigma: 0.5
## - threshold: 2.5
## - sigma: 0.9
## - threshold: 2.5
## - sigma: 1.3
## - threshold: 2.5
## - sigma: 1.7
## - threshold: 2.5
## - sigma: 2.1
## - threshold: 2.5
## - sigma: 2.5
## - threshold: 2.5
## - sigma: 2.9
## - threshold: 2.5
## - sigma: 0.5
## - threshold: 2.6
## - sigma: 0.9
## - threshold: 2.6
## - sigma: 1.3
## - threshold: 2.6
## - sigma: 1.7
## - threshold: 2.6
## - sigma: 2.1
## - threshold: 2.6
## - sigma: 2.5
## - threshold: 2.6
## - sigma: 2.9
## - threshold: 2.6
## - sigma: 0.5
## - threshold: 2.7
## - sigma: 0.9
## - threshold: 2.7
## - sigma: 1.3
## - threshold: 2.7
## - sigma: 1.7
## - threshold: 2.7
## - sigma: 2.1
## - threshold: 2.7
## - sigma: 2.5
## - threshold: 2.7
## - sigma: 2.9
## - threshold: 2.7
## - sigma: 0.5
## - threshold: 2.8
## - sigma: 0.9
## - threshold: 2.8
## - sigma: 1.3
## - threshold: 2.8
## - sigma: 1.7
## - threshold: 2.8
## - sigma: 2.1
## - threshold: 2.8
## - sigma: 2.5
## - threshold: 2.8
## - sigma: 2.9
## - threshold: 2.8
## - sigma: 0.5
## - threshold: 2.9
## - sigma: 0.9
## - threshold: 2.9
## - sigma: 1.3
## - threshold: 2.9
## - sigma: 1.7
## - threshold: 2.9
## - sigma: 2.1
## - threshold: 2.9
## - sigma: 2.5
## - threshold: 2.9
## - sigma: 2.9
## - threshold: 2.9
## - sigma: 0.5
## - threshold: 3
## - sigma: 0.9
## - threshold: 3
## - sigma: 1.3
## - threshold: 3
## - sigma: 1.7
## - threshold: 3
## - sigma: 2.1
## - threshold: 3
## - sigma: 2.5
## - threshold: 3
## - sigma: 2.9
## - threshold: 3
grid
## sigma threshold min max
## 1 0.5 1.0 0.1 203.3
## 2 0.9 1.0 0.1 200.8
## 3 1.3 1.0 0.2 194.5
## 4 1.7 1.0 0.2 185.1
## 5 2.1 1.0 0.2 174.3
## 6 2.5 1.0 0.2 162.7
## 7 2.9 1.0 0.2 151.2
## 8 0.5 1.1 0.1 203.3
## 9 0.9 1.1 0.1 200.8
## 10 1.3 1.1 0.2 194.5
## 11 1.7 1.1 0.2 185.1
## 12 2.1 1.1 0.2 174.3
## 13 2.5 1.1 0.2 162.7
## 14 2.9 1.1 0.2 151.2
## 15 0.5 1.2 0.1 203.3
## 16 0.9 1.2 0.1 200.8
## 17 1.3 1.2 0.2 194.5
## 18 1.7 1.2 0.2 185.1
## 19 2.1 1.2 0.2 174.3
## 20 2.5 1.2 0.2 162.7
## 21 2.9 1.2 0.2 151.2
## 22 0.5 1.3 0.1 203.3
## 23 0.9 1.3 0.1 200.8
## 24 1.3 1.3 0.2 194.5
## 25 1.7 1.3 0.2 185.1
## 26 2.1 1.3 0.2 174.3
## 27 2.5 1.3 0.2 162.7
## 28 2.9 1.3 0.2 151.2
## 29 0.5 1.4 0.1 203.3
## 30 0.9 1.4 0.1 200.8
## 31 1.3 1.4 0.2 194.5
## 32 1.7 1.4 0.2 185.1
## 33 2.1 1.4 0.2 174.3
## 34 2.5 1.4 0.2 162.7
## 35 2.9 1.4 0.2 151.2
## 36 0.5 1.5 0.1 203.3
## 37 0.9 1.5 0.1 200.8
## 38 1.3 1.5 0.2 194.5
## 39 1.7 1.5 0.2 185.1
## 40 2.1 1.5 0.2 174.3
## 41 2.5 1.5 0.2 162.7
## 42 2.9 1.5 0.2 151.2
## 43 0.5 1.6 0.1 203.3
## 44 0.9 1.6 0.1 200.8
## 45 1.3 1.6 0.2 194.5
## 46 1.7 1.6 0.2 185.1
## 47 2.1 1.6 0.2 174.3
## 48 2.5 1.6 0.2 162.7
## 49 2.9 1.6 0.2 151.2
## 50 0.5 1.7 0.1 203.3
## 51 0.9 1.7 0.1 200.8
## 52 1.3 1.7 0.2 194.5
## 53 1.7 1.7 0.2 185.1
## 54 2.1 1.7 0.2 174.3
## 55 2.5 1.7 0.2 162.7
## 56 2.9 1.7 0.2 151.2
## 57 0.5 1.8 0.1 203.3
## 58 0.9 1.8 0.1 200.8
## 59 1.3 1.8 0.2 194.5
## 60 1.7 1.8 0.2 185.1
## 61 2.1 1.8 0.2 174.3
## 62 2.5 1.8 0.2 162.7
## 63 2.9 1.8 0.2 151.2
## 64 0.5 1.9 0.1 203.3
## 65 0.9 1.9 0.1 200.8
## 66 1.3 1.9 0.2 194.5
## 67 1.7 1.9 0.2 185.1
## 68 2.1 1.9 0.2 174.3
## 69 2.5 1.9 0.2 162.7
## 70 2.9 1.9 0.2 151.2
## 71 0.5 2.0 0.1 203.3
## 72 0.9 2.0 0.1 200.8
## 73 1.3 2.0 0.2 194.5
## 74 1.7 2.0 0.2 185.1
## 75 2.1 2.0 0.2 174.3
## 76 2.5 2.0 0.2 162.7
## 77 2.9 2.0 0.2 151.2
## 78 0.5 2.1 0.1 203.3
## 79 0.9 2.1 0.1 200.8
## 80 1.3 2.1 0.2 194.5
## 81 1.7 2.1 0.2 185.1
## 82 2.1 2.1 0.2 174.3
## 83 2.5 2.1 0.2 162.7
## 84 2.9 2.1 0.2 151.2
## 85 0.5 2.2 0.1 203.3
## 86 0.9 2.2 0.1 200.8
## 87 1.3 2.2 0.2 194.5
## 88 1.7 2.2 0.2 185.1
## 89 2.1 2.2 0.2 174.3
## 90 2.5 2.2 0.2 162.7
## 91 2.9 2.2 0.2 151.2
## 92 0.5 2.3 0.1 203.3
## 93 0.9 2.3 0.1 200.8
## 94 1.3 2.3 0.2 194.5
## 95 1.7 2.3 0.2 185.1
## 96 2.1 2.3 0.2 174.3
## 97 2.5 2.3 0.2 162.7
## 98 2.9 2.3 0.2 151.2
## 99 0.5 2.4 0.1 203.3
## 100 0.9 2.4 0.1 200.8
## 101 1.3 2.4 0.2 194.5
## 102 1.7 2.4 0.2 185.1
## 103 2.1 2.4 0.2 174.3
## 104 2.5 2.4 0.2 162.7
## 105 2.9 2.4 0.2 151.2
## 106 0.5 2.5 0.1 203.3
## 107 0.9 2.5 0.1 200.8
## 108 1.3 2.5 0.2 194.5
## 109 1.7 2.5 0.2 185.1
## 110 2.1 2.5 0.2 174.3
## 111 2.5 2.5 0.2 162.7
## 112 2.9 2.5 0.2 151.2
## 113 0.5 2.6 0.1 203.3
## 114 0.9 2.6 0.1 200.8
## 115 1.3 2.6 0.2 194.5
## 116 1.7 2.6 0.2 185.1
## 117 2.1 2.6 0.2 174.3
## 118 2.5 2.6 0.2 162.7
## 119 2.9 2.6 0.2 151.2
## 120 0.5 2.7 0.1 203.3
## 121 0.9 2.7 0.1 200.8
## 122 1.3 2.7 0.2 194.5
## 123 1.7 2.7 0.2 185.1
## 124 2.1 2.7 0.2 174.3
## 125 2.5 2.7 0.2 162.7
## 126 2.9 2.7 0.2 151.2
## 127 0.5 2.8 0.1 203.3
## 128 0.9 2.8 0.1 200.8
## 129 1.3 2.8 0.2 194.5
## 130 1.7 2.8 0.2 185.1
## 131 2.1 2.8 0.2 174.3
## 132 2.5 2.8 0.2 162.7
## 133 2.9 2.8 0.2 151.2
## 134 0.5 2.9 0.1 203.3
## 135 0.9 2.9 0.1 200.8
## 136 1.3 2.9 0.2 194.5
## 137 1.7 2.9 0.2 185.1
## 138 2.1 2.9 0.2 174.3
## 139 2.5 2.9 0.2 162.7
## 140 2.9 2.9 0.2 151.2
## 141 0.5 3.0 0.1 203.3
## 142 0.9 3.0 0.1 200.8
## 143 1.3 3.0 0.2 194.5
## 144 1.7 3.0 0.2 185.1
## 145 2.1 3.0 0.2 174.3
## 146 2.5 3.0 0.2 162.7
## 147 2.9 3.0 0.2 151.2
write.csv(grid,"grid_resulttable.csv")
grid <- expand.grid(sigma = c(1,2,3,4,5,10,100),
offset = c(100,10,1,0,0.01,0.001,0.0001,0.00001,0.000001,0.0000001),
w=c(1,5,10,50))
img2 <- image@grey * 255
# Set up plots for 96 dpi images
#library(EBImage)
#dm <- dim(img2)/96
#dev.new(width = dm[1], height = dm[2])
# Low pass filter with gblur and make binary
for(i in 1:dim(grid)[1]){
writeLines(c(
paste0("- sigma: ",grid$sigma[i]),
paste0("- offset: ", grid$offset[i]),
paste0(" - w and h: ",grid$w[i])
))
#Low-pass Gaussian filter
xb <- EBImage::gblur(img2, grid$sigma[i])
plot(xb)
image2 <- pixmapGrey(xb,cellres=c(1,1)) #(xb-min(xb))/(max(xb)-min(xb))
plot(image2)
xt <- EBImage::thresh(xb, w=grid$w[i],
h=grid$w[i],
offset = grid$offset[i])
plot(xt)
image3 <- image
image3@grey <- xt
plot(image3)
}
x <- image@grey * 255
linesegments <- image_line_segment_detector(x,
scale = 0.8,
sigma_scale = 0.6,
quant = 2,
ang_th = 22.5,
log_eps = 0,
density_th = 0.7,
n_bins = 1024,
union = FALSE,
union_min_length = 5,
union_max_distance = 5,
union_ang_th = 7,
union_use_NFA = FALSE,
union_log_eps = 0)
linesegments
plot(image)
plot(linesegments, add = TRUE, col = "red")
contourlines <- image_contour_detector(x, Q = 2)
contourlines
plot(image)
plot(contourlines, add = TRUE, col = "red")
edges <- image_canny_edge_detector(x)
edges
plot(edges)